home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 November: Tool Chest / Dev.CD Nov 94.toast / Tool Chest / !Interfaces / Universal Interfaces 2.0a1 / PInterfaces / Connections.p < prev    next >
Encoding:
Text File  |  1994-07-17  |  11.4 KB  |  349 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Connections.p
  3.  
  4.      Copyright:    © 1984-1994 by Apple Computer, Inc.
  5.                  All rights reserved.
  6.  
  7.      Version:    Universal Interfaces 2.0a1.  ETO #15, MPW prerelease.  Sunday, July 17, 1994. 
  8.  
  9.      Bugs?:        If you find a problem with this file, send the file and version
  10.                  information (from above) and the problem description to:
  11.  
  12.                      Internet:    apple.bugs@applelink.apple.com
  13.                      AppleLink:    APPLE.BUGS
  14.  
  15. }
  16.  
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT Connections;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __CONNECTIONS__}
  27. {$SETC __CONNECTIONS__ := 1}
  28.  
  29. {$I+}
  30. {$SETC ConnectionsIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33.  
  34. {$IFC UNDEFINED __WINDOWS__}
  35. {$I Windows.p}
  36. {$ENDC}
  37. {    Memory.p                                                    }
  38. {        Types.p                                                    }
  39. {            ConditionalMacros.p                                    }
  40. {        MixedMode.p                                                }
  41. {    Quickdraw.p                                                    }
  42. {        QuickdrawText.p                                            }
  43. {    Events.p                                                    }
  44. {        OSUtils.p                                                }
  45. {    Controls.p                                                    }
  46. {        Menus.p                                                    }
  47.  
  48. {$IFC UNDEFINED __DIALOGS__}
  49. {$I Dialogs.p}
  50. {$ENDC}
  51. {    Errors.p                                                    }
  52. {    TextEdit.p                                                    }
  53.  
  54. {$IFC UNDEFINED __CTBUTILITIES__}
  55. {$I CTBUtilities.p}
  56. {$ENDC}
  57. {    StandardFile.p                                                }
  58. {        Files.p                                                    }
  59. {    AppleTalk.p                                                    }
  60.  
  61. {$PUSH}
  62. {$ALIGN MAC68K}
  63. {$LibExport+}
  64.  
  65. CONST
  66. {    current Connection Manager version    }
  67.     curCMVersion                = 2;
  68. {    current Connection Manager Environment Record version     }
  69.     curConnEnvRecVers            = 0;
  70. { CMErr }
  71.     cmGenericError                = -1;
  72.     cmNoErr                        = 0;
  73.     cmRejected                    = 1;
  74.     cmFailed                    = 2;
  75.     cmTimeOut                    = 3;
  76.     cmNotOpen                    = 4;
  77.     cmNotClosed                    = 5;
  78.     cmNoRequestPending            = 6;
  79.     cmNotSupported                = 7;
  80.     cmNoTools                    = 8;
  81.     cmUserCancel                = 9;
  82.     cmUnknownError                = 11;
  83.  
  84.     
  85. TYPE
  86. CMErr = OSErr;
  87.  
  88.  
  89. CONST
  90.     cmData                        = 1 * (2**(0));
  91.     cmCntl                        = 1 * (2**(1));
  92.     cmAttn                        = 1 * (2**(2));
  93.     cmDataNoTimeout                = 1 * (2**(4));
  94.     cmCntlNoTimeout                = 1 * (2**(5));
  95.     cmAttnNoTimeout                = 1 * (2**(6));
  96.     cmDataClean                    = 1 * (2**(8));
  97.     cmCntlClean                    = 1 * (2**(9));
  98.     cmAttnClean                    = 1 * (2**(10));
  99. {        Only for CMRecFlags (not CMChannel) in the rest of this enum    }
  100.     cmNoMenus                    = 1 * (2**(16));
  101.     cmQuiet                        = 1 * (2**(17));
  102.     cmConfigChanged                = 1 * (2**(18));
  103.  
  104. { CMRecFlags and CMChannel        }
  105. {        Low word of CMRecFlags is same as CMChannel    }
  106.     
  107. TYPE
  108. CMRecFlags = LONGINT;
  109.  
  110.     CMChannel = INTEGER;
  111.  
  112.  
  113. CONST
  114.     cmStatusOpening                = 1 * (2**(0));
  115.     cmStatusOpen                = 1 * (2**(1));
  116.     cmStatusClosing                = 1 * (2**(2));
  117.     cmStatusDataAvail            = 1 * (2**(3));
  118.     cmStatusCntlAvail            = 1 * (2**(4));
  119.     cmStatusAttnAvail            = 1 * (2**(5));
  120.     cmStatusDRPend                = 1 * (2**(6));                    { data read pending    }
  121.     cmStatusDWPend                = 1 * (2**(7));                    { data write pending    }
  122.     cmStatusCRPend                = 1 * (2**(8));                    { cntl read pending    }
  123.     cmStatusCWPend                = 1 * (2**(9));                    { cntl write pending    }
  124.     cmStatusARPend                = 1 * (2**(10));                { attn read pending    }
  125.     cmStatusAWPend                = 1 * (2**(11));                { attn write pending    }
  126.     cmStatusBreakPend            = 1 * (2**(12));
  127.     cmStatusListenPend            = 1 * (2**(13));
  128.     cmStatusIncomingCallPresent    = 1 * (2**(14));
  129.     cmStatusReserved0            = 1 * (2**(15));
  130.  
  131.     
  132. TYPE
  133. CMStatFlags = LONGINT;
  134.  
  135.  
  136. CONST
  137.     cmDataIn                    = 0;
  138.     cmDataOut                    = 1;
  139.     cmCntlIn                    = 2;
  140.     cmCntlOut                    = 3;
  141.     cmAttnIn                    = 4;
  142.     cmAttnOut                    = 5;
  143.     cmRsrvIn                    = 6;
  144.     cmRsrvOut                    = 7;
  145.  
  146.     
  147. TYPE
  148. CMBufFields = INTEGER;
  149.  
  150.     CMBuffers = ARRAY [0..7] OF Ptr;
  151.  
  152.     CMBufferSizes = ARRAY [0..7] OF LONGINT;
  153.  
  154.     ConstCMBufferSizesParam = ^LONGINT;
  155.  
  156.  
  157. CONST
  158.     cmSearchSevenBit            = 1 * (2**(0));
  159.  
  160.     
  161. TYPE
  162. CMSearchFlags = INTEGER;
  163.  
  164.  
  165. CONST
  166.     cmFlagsEOM                    = 1 * (2**(0));
  167.  
  168.     
  169. TYPE
  170. CMFlags = INTEGER;
  171.  
  172.     ConnEnvironRec = RECORD
  173.         version:                INTEGER;
  174.         baudRate:                LONGINT;
  175.         dataBits:                INTEGER;
  176.         channels:                CMChannel;
  177.         swFlowControl:            BOOLEAN;
  178.         hwFlowControl:            BOOLEAN;
  179.         flags:                    CMFlags;
  180.     END;
  181.     ConnEnvironRecPtr = ^ConnEnvironRec;
  182.  
  183.     ConnPtr = ^ConnRecord;
  184.     ConnHandle = ^ConnPtr;
  185.  
  186.     ConnectionToolDefProcPtr = ProcPtr;  { FUNCTION ConnectionToolDef(hConn: ConnHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT): LONGINT; }
  187.     ConnectionSearchCallBackProcPtr = ProcPtr;  { PROCEDURE ConnectionSearchCallBack(hConn: ConnHandle; matchPtr: Ptr; refNum: LONGINT); }
  188.     ConnectionCompletionProcPtr = ProcPtr;  { PROCEDURE ConnectionCompletion(hConn: ConnHandle); }
  189.     ConnectionChooseIdleProcPtr = ProcPtr;  { PROCEDURE ConnectionChooseIdle; }
  190.     ConnectionToolDefUPP = UniversalProcPtr;
  191.     ConnectionSearchCallBackUPP = UniversalProcPtr;
  192.     ConnectionCompletionUPP = UniversalProcPtr;
  193.     ConnectionChooseIdleUPP = UniversalProcPtr;
  194.  
  195.     ConnRecord = RECORD
  196.         procID:                    INTEGER;
  197.         flags:                    CMRecFlags;
  198.         errCode:                CMErr;
  199.         refCon:                    LONGINT;
  200.         userData:                LONGINT;
  201.         defProc:                ConnectionToolDefUPP;
  202.         config:                    Ptr;
  203.         oldConfig:                Ptr;
  204.         asyncEOM:                LONGINT;
  205.         reserved1:                LONGINT;
  206.         reserved2:                LONGINT;
  207.         cmPrivate:                Ptr;
  208.         bufferArray:            CMBuffers;
  209.         bufSizes:                CMBufferSizes;
  210.         mluField:                LONGINT;
  211.         asyncCount:                CMBufferSizes;
  212.     END;
  213.  
  214. CONST
  215. { CMIOPB constants and structure }
  216.     cmIOPBQType                    = 10;
  217.     cmIOPBversion                = 0;
  218.  
  219.  
  220. TYPE
  221.     CMIOPB = RECORD
  222.         qLink:                    QElemPtr;
  223.         qType:                    INTEGER;                                { cmIOPBQType }
  224.         hConn:                    ConnHandle;
  225.         theBuffer:                Ptr;
  226.         count:                    LONGINT;
  227.         flags:                    CMFlags;
  228.         userCompletion:            ConnectionCompletionUPP;
  229.         timeout:                LONGINT;
  230.         errCode:                CMErr;
  231.         channel:                CMChannel;
  232.         asyncEOM:                LONGINT;
  233.         reserved1:                LONGINT;
  234.         reserved2:                INTEGER;
  235.         version:                INTEGER;                                { cmIOPBversion }
  236.         refCon:                    LONGINT;                                { for application }
  237.         toolData1:                LONGINT;                                { for tool }
  238.         toolData2:                LONGINT;                                { for tool }
  239.     END;
  240.     CMIOPBPtr = ^CMIOPB;
  241.  
  242. CONST
  243.     uppConnectionToolDefProcInfo = $0000FEF0; { FUNCTION (4 byte param, 2 byte param, 4 byte param, 4 byte param, 4 byte param): 4 byte result; }
  244.     uppConnectionSearchCallBackProcInfo = $00000FC0; { PROCEDURE (4 byte param, 4 byte param, 4 byte param); }
  245.     uppConnectionCompletionProcInfo = $000000C0; { PROCEDURE (4 byte param); }
  246.     uppConnectionChooseIdleProcInfo = $00000000; { PROCEDURE ; }
  247.  
  248. FUNCTION CallConnectionToolDefProc(hConn: ConnHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT; userRoutine: ConnectionToolDefUPP): LONGINT;
  249.     {$IFC NOT GENERATINGCFM}
  250.     INLINE $205F, $4E90;
  251.     {$ENDC}
  252.  
  253. PROCEDURE CallConnectionSearchCallBackProc(hConn: ConnHandle; matchPtr: Ptr; refNum: LONGINT; userRoutine: ConnectionSearchCallBackUPP);
  254.     {$IFC NOT GENERATINGCFM}
  255.     INLINE $205F, $4E90;
  256.     {$ENDC}
  257.  
  258. PROCEDURE CallConnectionCompletionProc(hConn: ConnHandle; userRoutine: ConnectionCompletionUPP);
  259.     {$IFC NOT GENERATINGCFM}
  260.     INLINE $205F, $4E90;
  261.     {$ENDC}
  262.  
  263. PROCEDURE CallConnectionChooseIdleProc(userRoutine: ConnectionChooseIdleUPP);
  264.     {$IFC NOT GENERATINGCFM}
  265.     INLINE $205F, $4E90;
  266.     {$ENDC}
  267.  
  268. FUNCTION NewConnectionToolDefProc(userRoutine: ConnectionToolDefProcPtr): ConnectionToolDefUPP;
  269.     {$IFC NOT GENERATINGCFM }
  270.     INLINE $2E9F;
  271.     {$ENDC}
  272.  
  273. FUNCTION NewConnectionSearchCallBackProc(userRoutine: ConnectionSearchCallBackProcPtr): ConnectionSearchCallBackUPP;
  274.     {$IFC NOT GENERATINGCFM }
  275.     INLINE $2E9F;
  276.     {$ENDC}
  277.  
  278. FUNCTION NewConnectionCompletionProc(userRoutine: ConnectionCompletionProcPtr): ConnectionCompletionUPP;
  279.     {$IFC NOT GENERATINGCFM }
  280.     INLINE $2E9F;
  281.     {$ENDC}
  282.  
  283. FUNCTION NewConnectionChooseIdleProc(userRoutine: ConnectionChooseIdleProcPtr): ConnectionChooseIdleUPP;
  284.     {$IFC NOT GENERATINGCFM }
  285.     INLINE $2E9F;
  286.     {$ENDC}
  287.  
  288. FUNCTION InitCM: CMErr;
  289. FUNCTION CMGetVersion(hConn: ConnHandle): Handle;
  290. FUNCTION CMGetCMVersion: INTEGER;
  291. FUNCTION CMNew(procID: INTEGER; flags: CMRecFlags; desiredSizes: ConstCMBufferSizesParam; refCon: LONGINT; userData: LONGINT): ConnHandle;
  292. PROCEDURE CMDispose(hConn: ConnHandle);
  293. FUNCTION CMListen(hConn: ConnHandle; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT): CMErr;
  294. FUNCTION CMAccept(hConn: ConnHandle; accept: BOOLEAN): CMErr;
  295. FUNCTION CMOpen(hConn: ConnHandle; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT): CMErr;
  296. FUNCTION CMClose(hConn: ConnHandle; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT; now: BOOLEAN): CMErr;
  297. FUNCTION CMAbort(hConn: ConnHandle): CMErr;
  298. FUNCTION CMStatus(hConn: ConnHandle; VAR sizes: CMBufferSizes; VAR flags: CMStatFlags): CMErr;
  299. PROCEDURE CMIdle(hConn: ConnHandle);
  300. PROCEDURE CMReset(hConn: ConnHandle);
  301. PROCEDURE CMBreak(hConn: ConnHandle; duration: LONGINT; async: BOOLEAN; completor: ConnectionCompletionUPP);
  302. FUNCTION CMRead(hConn: ConnHandle; theBuffer: UNIV Ptr; VAR toRead: LONGINT; theChannel: CMChannel; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT; VAR flags: CMFlags): CMErr;
  303. FUNCTION CMWrite(hConn: ConnHandle; theBuffer: UNIV Ptr; VAR toWrite: LONGINT; theChannel: CMChannel; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT; flags: CMFlags): CMErr;
  304. FUNCTION CMIOKill(hConn: ConnHandle; which: INTEGER): CMErr;
  305. PROCEDURE CMActivate(hConn: ConnHandle; activate: BOOLEAN);
  306. PROCEDURE CMResume(hConn: ConnHandle; resume: BOOLEAN);
  307. FUNCTION CMMenu(hConn: ConnHandle; menuID: INTEGER; item: INTEGER): BOOLEAN;
  308. FUNCTION CMValidate(hConn: ConnHandle): BOOLEAN;
  309. PROCEDURE CMDefault(VAR theConfig: Ptr; procID: INTEGER; allocate: BOOLEAN);
  310. FUNCTION CMSetupPreflight(procID: INTEGER; VAR magicCookie: LONGINT): Handle;
  311. FUNCTION CMSetupFilter(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR theEvent: EventRecord; VAR theItem: INTEGER; VAR magicCookie: LONGINT): BOOLEAN;
  312. PROCEDURE CMSetupSetup(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR magicCookie: LONGINT);
  313. PROCEDURE CMSetupItem(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR theItem: INTEGER; VAR magicCookie: LONGINT);
  314. PROCEDURE CMSetupXCleanup(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; OKed: BOOLEAN; VAR magicCookie: LONGINT);
  315. PROCEDURE CMSetupPostflight(procID: INTEGER);
  316. FUNCTION CMGetConfig(hConn: ConnHandle): Ptr;
  317. FUNCTION CMSetConfig(hConn: ConnHandle; thePtr: UNIV Ptr): INTEGER;
  318. FUNCTION CMIntlToEnglish(hConn: ConnHandle; inputPtr: UNIV Ptr; VAR outputPtr: Ptr; language: INTEGER): OSErr;
  319. FUNCTION CMEnglishToIntl(hConn: ConnHandle; inputPtr: UNIV Ptr; VAR outputPtr: Ptr; language: INTEGER): OSErr;
  320. FUNCTION CMAddSearch(hConn: ConnHandle; theString: ConstStr255Param; flags: CMSearchFlags; callBack: ConnectionSearchCallBackUPP): LONGINT;
  321. PROCEDURE CMRemoveSearch(hConn: ConnHandle; refnum: LONGINT);
  322. PROCEDURE CMClearSearch(hConn: ConnHandle);
  323. FUNCTION CMGetConnEnvirons(hConn: ConnHandle; VAR theEnvirons: ConnEnvironRec): CMErr;
  324. FUNCTION CMChoose(VAR hConn: ConnHandle; where: Point; idle: ConnectionChooseIdleUPP): INTEGER;
  325. PROCEDURE CMEvent(hConn: ConnHandle; theEvent: EventRecord);
  326. PROCEDURE CMGetToolName(procID: INTEGER; VAR name: Str255);
  327. FUNCTION CMGetProcID(name: ConstStr255Param): INTEGER;
  328. PROCEDURE CMSetRefCon(hConn: ConnHandle; refCon: LONGINT);
  329. FUNCTION CMGetRefCon(hConn: ConnHandle): LONGINT;
  330. FUNCTION CMGetUserData(hConn: ConnHandle): LONGINT;
  331. PROCEDURE CMSetUserData(hConn: ConnHandle; userData: LONGINT);
  332. PROCEDURE CMGetErrorString(hConn: ConnHandle; id: INTEGER; VAR errMsg: Str255);
  333. FUNCTION CMNewIOPB(hConn: ConnHandle; VAR theIOPB: CMIOPBPtr): CMErr;
  334. FUNCTION CMDisposeIOPB(hConn: ConnHandle; theIOPB: CMIOPBPtr): CMErr;
  335. FUNCTION CMPBRead(hConn: ConnHandle; theIOPB: CMIOPBPtr; async: BOOLEAN): CMErr;
  336. FUNCTION CMPBWrite(hConn: ConnHandle; theIOPB: CMIOPBPtr; async: BOOLEAN): CMErr;
  337. FUNCTION CMPBIOKill(hConn: ConnHandle; theIOPB: CMIOPBPtr): CMErr;
  338.  
  339. {$ALIGN RESET}
  340. {$POP}
  341.  
  342. {$SETC UsingIncludes := ConnectionsIncludes}
  343.  
  344. {$ENDC} {__CONNECTIONS__}
  345.  
  346. {$IFC NOT UsingIncludes}
  347.  END.
  348. {$ENDC}
  349.